class Servicio < ActiveRecord::Base
	belongs_to :proveedor	
	belongs_to :tipo_persona
	belongs_to :lugar
	belongs_to :tipo_tarifa
	belongs_to :tipo_servicio
	has_many :precios, :dependent=>:destroy
	
	def to_s
		nombre
	end	
	
#	def self.search(clave, lugar_id)		
#		sql = "select 
#			p.nombre as proveedor_nombre, 
#			s.nombre as servicio_nombre,
#			s.id as servicio_id,
#			tp.nombre as tipo_persona_nombre, 
#			tp.id as tipo_persona_id,
#			l.nombre as lugar_nombre,
#			l.id as lugar_id
#		from 
#			proveedores p inner join servicios s
#				on s.proveedor_id = p.id
#			left outer join tipos_persona tp
#				on s.tipo_persona_id = tp.id
#			left outer join lugares l
#			 on s.lugar_id = l.id
#		where
#			(p.nombre like ? or p.razon_social like ? or s.nombre like ?)"
#		if lugar_id.to_i > 0
#			sql += " and p.lugar_id = #{lugar_id}"
#		end
#		sql += " order by l.nombre, p.nombre, s.nombre"
#
#		Proveedor.find_by_sql([sql, "%#{clave}%", "%#{clave}%", "%#{clave}%"])		
#	end	
#end

	def self.search(clave, lugar_id)		
		sql = "
			SELECT
				distinct
				p.nombre as proveedor_nombre, 
				s.nombre as servicio_nombre,
				s.id as servicio_id,
				tp.nombre as tipo_persona_nombre, 
				tp.id as tipo_persona_id,
				l.nombre as lugar_nombre,
				l.id as lugar_id
			FROM
				proveedores p 
				JOIN servicios s ON s.proveedor_id = p.id
				JOIN precios pr ON pr.servicio_id = s.id
				LEFT JOIN tipos_persona tp ON s.tipo_persona_id = tp.id
				LEFT JOIN lugares l	ON s.lugar_id = l.id
			WHERE
				(p.nombre like ? or p.razon_social like ? or s.nombre like ?)
				AND now() between pr.fecha_inicio and fecha_fin "
		if lugar_id.to_i > 0
			sql += " AND p.lugar_id = #{lugar_id}"
		end
		sql += " 	ORDER BY l.nombre, p.nombre, s.nombre"
		Proveedor.find_by_sql([sql, "%#{clave}%", "%#{clave}%", "%#{clave}%"])		
	end	
end